package day17;

import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListDemo {
    public static void main(String[] args) {
        //1创建List多态对象，注意List是接口，不能实例化不能创建对象
        List<String> list = new ArrayList<String>();
        //2测试继承自Collection接口的常用方法
        list.add("大娃");  //向集合中添加元素
        list.add("二娃");
        list.add("三娃");
        list.add("四娃");
        list.add("五娃");
        list.add("六娃");
        list.add("七娃");
        System.out.println(list);

        //list.clear();    //q清空集合
        //System.out.println(list);
//继承自Collectiong的防范
        System.out.println(list.contains("大娃"));   //判断集合中是否包含指定元素
        System.out.println(list.equals("三娃"));  //判断两个集合是否相等
        System.out.println(list.isEmpty());   //判断集合是否为空
        System.out.println(list.remove("七娃"));
        System.out.println(list);
        System.out.println(list.size());
        System.out.println(list.toArray());
        System.out.println(Arrays.toString(list.toArray()));

        //继承自List的方法
        list.add("小蝴蝶");   //默认追加在最后
        list.add(1 , "蛇精");  //在指定下表处添加元素，注意下标从0开始
        System.out.println(list);

        System.out.println(list.indexOf("小蝴蝶")); //获取指定元素第一次的小标
        System.out.println(list.lastIndexOf("小蝴蝶"));  //获取指定元素最后一次出现的下标

        System.out.println(list.remove(5));

        System.out.println(list.get(3));  //获取下表为3的元素

        System.out.println(list.set(6 , "蝎子精”")); //修改指定位置元素

        //测试集合间的操作
        List<String> list2 = new ArrayList<String>();
        list2.add("1");
        list2.add("2");
        list2.add("3");
        list2.add("4");
        System.out.println(list2);
        System.out.println(list.addAll(list2));    //将List2中的所有元素都添加到list合集中，默认追击在最后
        System.out.println(list);

        System.out.println(list.addAll(1 , list2));  //将list2中所有元素都添加到list集合的指定位置
        System.out.println(list);

        System.out.println(list.containsAll(list2));    //判断list集合中是否包含list2所有元素
        System.out.println(list.removeAll(list2));
        System.out.println(list);

    }
}
